In order for Dotfuscator to know what data to collect and when to collect it, we must annotate our code with "Extended Attributes" added via the UI or Custom Attributes added during development. The Attributes tab contains a view of the inputs to which Extended Attributes may be added by right-clicking on assemblies or methods.
At a minimum, we must uniquely identify our application and annotate its entry and exit points. To identify our application, we need to add a BusinessAttribute and ApplicationAttribute to our primary assembly. The BusinessAttribute distinguishes our company using a GUID provided by PreEmptive and the ApplicationAttribute ensures that data from our various applications is separated using configured GUIDs. The free PreEmptive Analytics endpoint (configured in the SetupAttribute) expects a specific CompanyKey, which is provided by default in the BusinessAttribute editor.
To enable message sending, we must specify the method or methods denoting the entry and exit points of our application (or more generally, the beginning and end of data gathering) by adding a SetupAttribute to each entry method and a TeardownAttribute to each exit method. The SetupAttribute can be configured to send data to our desired endpoint. Only data gathered between Setup and Teardown will be reported.
At this point, our application is configured to send lifecycle data to the configured endpoint. We may now configure additional data collection such as feature usage (FeatureAttribute) and exception data (ExceptionTrackAttribute), as well as detect tampered sessions (InsertTamperCheckAttribute). See the manual for details about these and other attributes.